package com.jiangxjsy.gateway.property;

import com.google.common.collect.Lists;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * wukong-crm-master
 * 蒋胜宇
 * 2025/5/29 15:59
 */

@Data
@Component
@RefreshScope
@ConfigurationProperties(prefix = "wukong-crm.gateway")
public class GatewayProperty {
    /**
     * 来自配置文件的白名单
     * 走白名单处理流程
     */
    private List<String> whiteList;

    /**
     * 不需要权限的 url
     * 走白名单处理流程
     */
    private final List<String> noAuthUrls = Lists.newArrayList(
            "/crmMarketing/queryMarketingId",
            "/crmMarketing/queryAddField",
            "/crmMarketing/saveMarketingInfo",
            "/adminUser/queryLoginUser",
            "/crmCall/upload",
            "/adminUser/querySystemStatus",
            "/adminUser/initUser"
    );

    /**
     * api文档后缀
     * 走白名单处理流程
     */
    public final String apiUriSuffix = "/v2/api-docs";

    /**
     * 需特殊处理权限的 url
     * 走需 token 认证处理流程
     * 如果请求没有携带 token 时，就判断请求是不是下面这些请求，
     * 如果是则从 cookie 中获取 token，
     * 之后再继续进行 token 认证处理
     */
    public final List<String> specialAuthUrls = Lists.newArrayList(
            "/adminFile/down/*",
            "/crmPrint/down",
            "/crmPrint/preview.pdf"
    );
}
